import { createI18n, useI18n } from 'vue-i18n';
 
// 自定义国际化文件
import zh_CN from './zh-CN';
import en_US from './en-US';

// vant 语言包
import { Locale } from 'vant'
import enUS from 'vant/es/locale/lang/en-US';
import zhCN from 'vant/es/locale/lang/zh-CN';
import {  getLang } from "@/utils/util"
const defaultLang = getLang() 
// 
const i18n = createI18n({
    legacy: false, // Composition API 模式
    globalInjection: true, // 全局注册 $t方法
    // 默认语言
    locale: defaultLang,
    // 语言库
    messages: {
        'zh-CN': zh_CN,  
        'en-US': en_US
    }
});
const vantLang = {
    'zh-CN': zhCN,
    'en-US': enUS
}
function onChange (lang = defaultLang) {
    console.log("切换的语言哦", lang)
    Locale.use(lang, vantLang[lang])
    // location.reload()
}

const translate = (localeKey) => {
    const locale = getLang() 
    const hasKey = i18n.te(localeKey, locale)  // 使用i18n的 te 方法来检查是否能够匹配到对应键值
    const translatedStr = i18n.t(localeKey) 
    if (hasKey) {
        return translatedStr
    }
    return localeKey
}

export {
    onChange,
    translate
}
// 将i18n暴露出去，在main.js中引入挂载
export default i18n;